package org.zsk.cs.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.zsk.cs.domain.po.IdentityAuth;
import org.zsk.cs.domain.po.User;
import org.zsk.cs.domain.vo.IdentityAuthVo;

import java.util.List;

/**
 * <p>
 * 社区身份认证 service
 * </p>
 *
 * @author zsk
 * @version 1.0
 * Created on 2020/03/26
 */
public interface IdentityAuthService extends IService<IdentityAuth> {


    /**
     * 社区居民批量注册
     * @param identityAuthVo 身份认证Vo
     */
    boolean registerResidentBatch(IdentityAuthVo identityAuthVo);

    /**
     * 审核居民认证
     * @param identityAuthVo 身份认证Vo
     */
    boolean auditResidentIdentityAuth(IdentityAuthVo identityAuthVo) throws Exception;

    /**
     * 审核区长认证
     * @param identityAuthVo 身份认证Vo
     */
    boolean auditDistrictHeadIdentityAuth(IdentityAuthVo identityAuthVo) throws Exception;

    /**
     * @return 该用户身份认证信息
     */
    IdentityAuth getPersonalIdentityAuth();
    /**
     * @return 返回包含用户名的身份认证list
     */
    Page<IdentityAuthVo> getWithUserNameByPage(IdentityAuthVo identityAuthVo) throws Exception;

    /**
     * @param identityAuthVo
     * @return 返回包含用户名的社区身份认证list
     * @throws Exception
     */
    Page<IdentityAuthVo> districtHeadGetWithUserNameByPage(IdentityAuthVo identityAuthVo) throws Exception;

    Page<IdentityAuthVo> search(IdentityAuthVo identityAuthVo) throws Exception;

    /**
     * 申请身份认证
     * @param identityAuthVo
     * @return
     * @throws Exception
     */
    boolean userApplyIdentityAuth(IdentityAuthVo identityAuthVo) throws Exception;
}
